package models

import (
	"time"
)

type ActivationManufactoryPlan struct {
	PlanId           []byte    `xorm:"not null pk comment('计划ID，xid') BINARY(20)"`
	BatchCode        string    `xorm:"not null comment('批次号') VARCHAR(30)"`
	OperaterId       string    `xorm:"not null comment('操作人ID') VARCHAR(30)"`
	Applier          string    `xorm:"not null comment('申请人姓名') VARCHAR(30)"`
	DeliverTo        string    `xorm:"not null comment('供应对象,S自营，D经销商') VARCHAR(10)"`
	Amount           int       `xorm:"not null comment('生成数量') INT"`
	SubscriptionType int       `xorm:"not null comment('2 表示个人版订阅类型，3 表示家庭版订阅类型') TINYINT"`
	ExtendedDuration string    `xorm:"not null comment('延长时间,1-365d') VARCHAR(20)"`
	MaxMemberCount   int       `xorm:"not null default 1 comment('家庭版(最大人数),个人版默认为1') TINYINT"`
	ExpiredTime      time.Time `xorm:"not null comment('有效期') TIMESTAMP"`
	Remark           string    `xorm:"not null comment('备注') VARCHAR(255)"`
	CreatedAt        time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt        time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt        time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type Advertisement struct {
	AdvertisementId []byte    `xorm:"not null pk comment('xid,营销页 ID') BINARY(20)"`
	ImageId         []byte    `xorm:"not null comment('图片ID') BINARY(20)"`
	PageId          []byte    `xorm:"not null comment('页面ID') BINARY(20)"`
	IsActivated     int       `xorm:"not null comment('是否使用当前页面') TINYINT"`
	Duration        int       `xorm:"not null comment('页面持续时间') INT"`
	Topic           string    `xorm:"comment('广告页主题') VARCHAR(50)"`
	CreatedAt       time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt       time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt       time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type Banner struct {
	BannerId    []byte    `xorm:"not null pk comment('xid,轮播图 ID') BINARY(20)"`
	ImageId     []byte    `xorm:"not null comment('图片ID') BINARY(20)"`
	PageId      []byte    `xorm:"not null comment('页面ID') BINARY(20)"`
	IsActivated int       `xorm:"not null comment('是否设定为轮播项') TINYINT"`
	Duration    int       `xorm:"not null comment('页面持续时间') INT"`
	Topic       string    `xorm:"comment('轮播页主题') VARCHAR(50)"`
	Path        string    `xorm:"comment('path路径，可能是h5界面路径，可能是有赞的url') VARCHAR(200)"`
	IsYzPath    int       `xorm:"default 0 comment('是否是有赞的path：0：不是，1：是') TINYINT(1)"`
	Rank        int       `xorm:"not null comment('排序编号') INT"`
	CreatedAt   time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt   time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt   time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type Broadcast struct {
	BroadcastId []byte    `xorm:"not null pk BINARY(20)"`
	Content     string    `xorm:"not null comment('广播内容') VARCHAR(200)"`
	IsActivated int       `xorm:"comment('是否激活') TINYINT"`
	Path        string    `xorm:"not null default '' comment('小程序或者h5调用') VARCHAR(100)"`
	IsYzPath    int       `xorm:"default 0 comment('是有赞链接path还是h5链接地址,0:h5,1:有赞链接') TINYINT(1)"`
	CreatedAt   time.Time `xorm:"not null TIMESTAMP"`
	UpdateAt    time.Time `xorm:"not null TIMESTAMP"`
	DeleteAt    time.Time `xorm:"TIMESTAMP"`
}

type Channel struct {
	ChannelId []byte    `xorm:"not null pk comment('xid,频道ID') BINARY(20)"`
	ImageId   []byte    `xorm:"not null comment('图片ID') BINARY(20)"`
	Topic     string    `xorm:"not null comment('主题') VARCHAR(50)"`
	Rank      int       `xorm:"not null comment('排序编号') INT"`
	ShowMenus int       `xorm:"not null comment('是否展示菜单,0否，1是') TINYINT"`
	CreatedAt time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type ChannelPage struct {
	ChannelId []byte    `xorm:"not null pk comment('xid,频道ID') BINARY(20)"`
	PageId    string    `xorm:"not null pk comment('页面ID') VARCHAR(50)"`
	CreatedAt time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type Device struct {
	DeviceId    []byte    `xorm:"not null pk comment('xid') BINARY(20)"`
	Mac         string    `xorm:"not null comment('设备MAC地址') VARCHAR(20)"`
	Sn          string    `xorm:"not null comment('设备SN号') unique VARCHAR(20)"`
	Model       string    `xorm:"not null comment('设备型号') VARCHAR(100)"`
	DeviceUsage int       `xorm:"not null comment('无效=0,未选择=1,未定义=2，试用机=3,正式机=4 ') TINYINT"`
	Remark      string    `xorm:"not null comment('备注') VARCHAR(255)"`
	CreatedAt   time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt   time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt   time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type Dietician struct {
	DieticianId  []byte    `xorm:"not null pk unique BINARY(20)"`
	NickName     string    `xorm:"comment('营养师昵称') unique VARCHAR(30)"`
	Avatar       string    `xorm:"comment('营养师头像') VARCHAR(20)"`
	Title        string    `xorm:"comment('营养师头衔') VARCHAR(30)"`
	Professional string    `xorm:"comment('主攻专业') VARCHAR(100)"`
	ServiceType  string    `xorm:"not null comment('服务类型(以逗号分割的数字类型的字符串)') VARCHAR(20)"`
	Direction    string    `xorm:"comment('擅长方向') VARCHAR(50)"`
	Des          string    `xorm:"comment('营养师过往描述') VARCHAR(200)"`
	Url          string    `xorm:"comment('小程序或者h5路径') VARCHAR(100)"`
	ExtendId     string    `xorm:"comment('扩展字段') VARCHAR(100)"`
	IsDeleted    int       `xorm:"default 0 comment('是否已删除') INT"`
	CreatedAt    time.Time `xorm:"not null TIMESTAMP"`
	UpdateAt     time.Time `xorm:"not null TIMESTAMP"`
	DeleteAt     time.Time `xorm:"TIMESTAMP"`
}

type EntryMenu struct {
	MenuId       []byte    `xorm:"not null pk comment('xid,词条菜单 ID') BINARY(20)"`
	ChannelId    []byte    `xorm:"not null comment('频道ID') index BINARY(20)"`
	MenuName     string    `xorm:"not null comment('菜单名称') VARCHAR(30)"`
	DisplayStyle int       `xorm:"not null default 3 comment('内容展示形式(2 为网格形式，3 为列表)') TINYINT"`
	Rank         int       `xorm:"not null comment('排序编号') INT"`
	CreatedAt    time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt    time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt    time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type EntryPage struct {
	EntryPageId  []byte    `xorm:"not null pk comment('xid,词条页面 ID') BINARY(20)"`
	MenuId       []byte    `xorm:"not null comment('词条菜单ID') BINARY(20)"`
	PageId       []byte    `xorm:"not null comment('页面ID') BINARY(20)"`
	Title        string    `xorm:"not null comment('词条标题') VARCHAR(100)"`
	HasThumbnail int       `xorm:"not null comment('是否有缩略图,0表示没有,1表示有') TINYINT"`
	ThumbnailUrl string    `xorm:"not null comment('缩略图地址') VARCHAR(100)"`
	Rank         int       `xorm:"not null comment('排序编号') INT"`
	CreatedAt    time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt    time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt    time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type Family struct {
	FamilyId       []byte    `xorm:"not null pk comment('xid,家庭ID') BINARY(20)"`
	PrimaryUserId  []byte    `xorm:"not null comment('主用户ID') unique BINARY(20)"`
	MaxMemberCount int       `xorm:"not null comment('家庭人数') INT"`
	CreatedAt      time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt      time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt      time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type FamilyChangeHistory struct {
	FamilyHistoryId string    `xorm:"not null pk comment('家庭历史ID，主键') VARCHAR(20)"`
	UserId          string    `xorm:"not null comment('xid,用户ID') VARCHAR(20)"`
	OldFamilyId     string    `xorm:"not null comment('改变前的家庭ID') VARCHAR(20)"`
	TargetFamilyId  string    `xorm:"not null comment('目标家庭ID') VARCHAR(20)"`
	CreatedAt       time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt       time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt       time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type FamilyMember struct {
	FamilyMemberId []byte    `xorm:"not null pk comment('xid,家庭成员ID') BINARY(20)"`
	FamilyId       []byte    `xorm:"not null comment('家庭ID') index BINARY(20)"`
	IsPrimaryUser  int       `xorm:"not null comment('是否是主用户，0表示否，1表示是') TINYINT"`
	CreatedAt      time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt      time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt      time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type FamilyMemberV1 struct {
	FamilyMemberId []byte    `xorm:"not null pk comment('xid,家庭成员ID') BINARY(20)"`
	FamilyId       []byte    `xorm:"not null comment('家庭ID') index BINARY(20)"`
	IsPrimaryUser  int       `xorm:"not null comment('是否是主用户，0表示否，1表示是') TINYINT"`
	CreatedAt      time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt      time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt      time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type FamilySubscriptionTimeline struct {
	FamilySubscriptionTimelineId []byte    `xorm:"not null pk comment('家庭版订阅时间线ID,xid') BINARY(20)"`
	UserId                       []byte    `xorm:"not null comment('用户 ID') unique BINARY(20)"`
	MaxMemberCount               int       `xorm:"not null comment('最大家庭成员数') INT"`
	AvailableBeginDate           time.Time `xorm:"not null comment('当前有效订阅的起始日期时间') TIMESTAMP"`
	ExpiredDate                  time.Time `xorm:"not null comment('订阅过期日期时间') TIMESTAMP"`
	CreatedAt                    time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt                    time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt                    time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type Favorite struct {
	FavoriteId []byte    `xorm:"not null pk comment('xid,收藏 ID') BINARY(20)"`
	PageId     []byte    `xorm:"not null comment('页面ID') BINARY(20)"`
	UserId     []byte    `xorm:"not null comment('用户ID') index BINARY(20)"`
	CreatedAt  time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt  time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt  time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type Feature struct {
	FeatureId    []byte    `xorm:"not null pk comment('xid,人气推荐 ID') BINARY(20)"`
	ImageId      []byte    `xorm:"not null comment('图片ID') BINARY(20)"`
	PageId       []byte    `xorm:"not null comment('页面ID') BINARY(20)"`
	IsHeading    int       `xorm:"not null comment('是否是头部(>)') TINYINT"`
	Weight       int       `xorm:"not null comment('被选中的概率[0,100]') INT"`
	Introduction string    `xorm:"not null comment('简介') VARCHAR(255)"`
	CreatedAt    time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt    time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt    time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type Friend struct {
	UserId            []byte    `xorm:"not null pk comment('主用户ID') BINARY(20)"`
	FriendUserId      []byte    `xorm:"not null pk comment('好友用户ID') BINARY(20)"`
	RemarkName        string    `xorm:"not null comment('备注') VARCHAR(20)"`
	RemarkNameInitial string    `xorm:"not null comment('昵称首字母，大写，如果不是字符则为#') VARCHAR(5)"`
	CreatedAt         time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt         time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt         time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type HealthReport struct {
	HealthReportId   []byte    `xorm:"not null pk comment('健康报道ID,xid') BINARY(20)"`
	UserProfileId    []byte    `xorm:"not null comment('用户档案ID') index BINARY(20)"`
	DeviceId         []byte    `xorm:"not null comment('设备ID') BINARY(20)"`
	Age              int       `xorm:"not null comment('年龄[18,)') INT"`
	Hand             int       `xorm:"not null comment('2 是左手，3 是右手 ') TINYINT"`
	Height           int       `xorm:"not null comment('身高[50,250]') INT"`
	Weight           int       `xorm:"not null comment('体重[30,250]') INT"`
	Nickname         string    `xorm:"not null comment('昵称') VARCHAR(50)"`
	NicknameInitial  string    `xorm:"not null comment('昵称首字母，大写，如果不是字符则为#') VARCHAR(1)"`
	Gender           int       `xorm:"not null comment('0是无效的性别，1是未设置性别，2是男，3是女') TINYINT"`
	WaveData         string    `xorm:"not null comment('波形序列化内容') TEXT"`
	EnableStatistics int       `xorm:"not null comment('报告是否参与分析') TINYINT"`
	HeartRate        int       `xorm:"not null comment('心率') INT"`
	HealthRiskIndex  int       `xorm:"not null comment('综合风险指数') INT"`
	Risk1            int       `xorm:"not null comment('高血压') INT"`
	Risk2            int       `xorm:"not null comment('高血脂') INT"`
	Risk3            int       `xorm:"not null comment('高血糖') INT"`
	Risk4            int       `xorm:"not null comment('心血管') INT"`
	Risk5            int       `xorm:"not null comment('脑血管') INT"`
	Risk6            int       `xorm:"not null comment('肝负担') INT"`
	Risk7            int       `xorm:"not null comment('肾负担') INT"`
	Risk8            int       `xorm:"not null comment('肠胃消化') INT"`
	Risk9            int       `xorm:"not null comment('胃食管反流') INT"`
	Risk10           int       `xorm:"not null comment('免疫力') INT"`
	Risk11           int       `xorm:"not null comment('骨质疏松') INT"`
	Risk12           int       `xorm:"not null comment('压力') INT"`
	Risk13           int       `xorm:"not null comment('疲劳') INT"`
	Risk14           int       `xorm:"not null comment('睡眠质量') INT"`
	Risk15           int       `xorm:"not null comment('内分泌失调') INT"`
	Risk16           int       `xorm:"not null comment('过敏') INT"`
	Risk17           int       `xorm:"not null comment('感染') INT"`
	Risk18           int       `xorm:"not null comment('咽炎') INT"`
	IsReportComplete int       `xorm:"not null comment('是否获取到金姆报告,0表示未完善，1表示完善') TINYINT"`
	PhysiqueKey      string    `xorm:"not null comment('体质类型编号') VARCHAR(50)"`
	PhysiqueExplain  string    `xorm:"not null comment('体质说明') VARCHAR(2000)"`
	HealthAge        int       `xorm:"not null comment('身体年龄') INT"`
	JmReportId       string    `xorm:"not null comment('金姆报告 ID') VARCHAR(50)"`
	JmPulseTestId    string    `xorm:"not null comment('金姆报告流水号') VARCHAR(50)"`
	Remark           string    `xorm:"not null comment('备注') VARCHAR(255)"`
	CreatedAt        time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt        time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt        time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type HealthReportV1 struct {
	HealthReportId   []byte    `xorm:"not null pk comment('健康报道ID,xid') BINARY(20)"`
	UserProfileId    []byte    `xorm:"not null comment('用户档案ID') index BINARY(20)"`
	DeviceId         []byte    `xorm:"not null comment('设备ID') BINARY(20)"`
	Age              int       `xorm:"not null comment('年龄[18,)') INT"`
	Hand             int       `xorm:"not null comment('2 是左手，3 是右手 ') TINYINT"`
	Height           int       `xorm:"not null comment('身高[50,250]') INT"`
	Weight           int       `xorm:"not null comment('体重[30,250]') INT"`
	WaveData         string    `xorm:"not null comment('波形序列化内容') TEXT"`
	EnableStatistics int       `xorm:"not null comment('报告是否参与分析') TINYINT"`
	HeartRate        int       `xorm:"not null comment('心率') INT"`
	HealthRiskIndex  int       `xorm:"not null comment('综合风险指数') INT"`
	Risk1            int       `xorm:"not null comment('高血压') INT"`
	Risk2            int       `xorm:"not null comment('高血脂') INT"`
	Risk3            int       `xorm:"not null comment('高血糖') INT"`
	Risk4            int       `xorm:"not null comment('心血管') INT"`
	Risk5            int       `xorm:"not null comment('脑血管') INT"`
	Risk6            int       `xorm:"not null comment('肝负担') INT"`
	Risk7            int       `xorm:"not null comment('肾负担') INT"`
	Risk8            int       `xorm:"not null comment('肠胃消化') INT"`
	Risk9            int       `xorm:"not null comment('胃食管反流') INT"`
	Risk10           int       `xorm:"not null comment('免疫力') INT"`
	Risk11           int       `xorm:"not null comment('骨质疏松') INT"`
	Risk12           int       `xorm:"not null comment('压力') INT"`
	Risk13           int       `xorm:"not null comment('疲劳') INT"`
	Risk14           int       `xorm:"not null comment('睡眠质量') INT"`
	Risk15           int       `xorm:"not null comment('内分泌失调') INT"`
	Risk16           int       `xorm:"not null comment('过敏') INT"`
	Risk17           int       `xorm:"not null comment('感染') INT"`
	Risk18           int       `xorm:"not null comment('咽炎') INT"`
	IsReportComplete int       `xorm:"not null comment('是否获取到金姆报告,0表示未完善，1表示完善') TINYINT"`
	PhysiqueKey      string    `xorm:"not null comment('体质类型编号') VARCHAR(50)"`
	HealthAge        int       `xorm:"not null comment('身体年龄') INT"`
	JmReportId       string    `xorm:"not null comment('金姆报告 ID') VARCHAR(50)"`
	JmPulseTestId    string    `xorm:"not null comment('金姆报告流水号') VARCHAR(50)"`
	Remark           string    `xorm:"not null comment('备注') VARCHAR(255)"`
	CreatedAt        time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt        time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt        time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
	Gender           int       `xorm:"not null TINYINT"`
	Nickname         string    `xorm:"not null VARCHAR(50)"`
	NicknameInitial  string    `xorm:"not null VARCHAR(1)"`
	PhysiqueExplain  string    `xorm:"not null VARCHAR(2000)"`
}

type HealthReportV2 struct {
	HealthReportId   []byte    `xorm:"not null pk comment('健康报道ID,xid') BINARY(20)"`
	UserProfileId    []byte    `xorm:"not null comment('用户档案ID') index BINARY(20)"`
	DeviceId         []byte    `xorm:"not null comment('设备ID') BINARY(20)"`
	Age              int       `xorm:"not null comment('年龄[18,)') INT"`
	Hand             int       `xorm:"not null comment('2 是左手，3 是右手 ') TINYINT"`
	Height           int       `xorm:"not null comment('身高[50,250]') INT"`
	Weight           int       `xorm:"not null comment('体重[30,250]') INT"`
	Nickname         string    `xorm:"not null comment('昵称') VARCHAR(50)"`
	NicknameInitial  string    `xorm:"not null comment('昵称首字母，大写，如果不是字符则为#') VARCHAR(1)"`
	Gender           int       `xorm:"not null comment('0是无效的性别，1是未设置性别，2是男，3是女') TINYINT"`
	WaveData         string    `xorm:"not null comment('波形序列化内容') TEXT"`
	EnableStatistics int       `xorm:"not null comment('报告是否参与分析') TINYINT"`
	HeartRate        int       `xorm:"not null comment('心率') INT"`
	HealthRiskIndex  int       `xorm:"not null comment('综合风险指数') INT"`
	Risk1            int       `xorm:"not null comment('高血压') INT"`
	Risk2            int       `xorm:"not null comment('高血脂') INT"`
	Risk3            int       `xorm:"not null comment('高血糖') INT"`
	Risk4            int       `xorm:"not null comment('心血管') INT"`
	Risk5            int       `xorm:"not null comment('脑血管') INT"`
	Risk6            int       `xorm:"not null comment('肝负担') INT"`
	Risk7            int       `xorm:"not null comment('肾负担') INT"`
	Risk8            int       `xorm:"not null comment('肠胃消化') INT"`
	Risk9            int       `xorm:"not null comment('胃食管反流') INT"`
	Risk10           int       `xorm:"not null comment('免疫力') INT"`
	Risk11           int       `xorm:"not null comment('骨质疏松') INT"`
	Risk12           int       `xorm:"not null comment('压力') INT"`
	Risk13           int       `xorm:"not null comment('疲劳') INT"`
	Risk14           int       `xorm:"not null comment('睡眠质量') INT"`
	Risk15           int       `xorm:"not null comment('内分泌失调') INT"`
	Risk16           int       `xorm:"not null comment('过敏') INT"`
	Risk17           int       `xorm:"not null comment('感染') INT"`
	Risk18           int       `xorm:"not null comment('咽炎') INT"`
	IsReportComplete int       `xorm:"not null comment('是否获取到金姆报告,0表示未完善，1表示完善') TINYINT"`
	PhysiqueKey      string    `xorm:"not null comment('体质类型编号') VARCHAR(50)"`
	PhysiqueExplain  string    `xorm:"not null comment('体质说明') VARCHAR(2000)"`
	HealthAge        int       `xorm:"not null comment('身体年龄') INT"`
	JmReportId       string    `xorm:"not null comment('金姆报告 ID') VARCHAR(50)"`
	JmPulseTestId    string    `xorm:"not null comment('金姆报告流水号') VARCHAR(50)"`
	Remark           string    `xorm:"not null comment('备注') VARCHAR(255)"`
	CreatedAt        time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt        time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt        time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type IapOrder struct {
	IapOrderId         []byte    `xorm:"not null pk comment('IAP订单 ID') BINARY(20)"`
	AppleTransactionId string    `xorm:"not null comment('苹果订单ID') VARCHAR(100)"`
	UserId             []byte    `xorm:"not null comment('用户 ID,xid') BINARY(20)"`
	ProductId          []byte    `xorm:"not null comment('商品 ID,xid') BINARY(20)"`
	SubscriptionItemId []byte    `xorm:"not null comment('订阅项 ID,xid') BINARY(20)"`
	OrderStatus        int       `xorm:"not null comment('订单创建 = 1 订单支付成功 = 2 订单退款 = 3') TINYINT"`
	CreatedAt          time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt          time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt          time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type Image struct {
	ImageId         []byte    `xorm:"not null pk comment('xid,图片ID') BINARY(20)"`
	Key             string    `xorm:"not null comment('图片关键字') VARCHAR(50)"`
	Mime            string    `xorm:"not null comment('图片格式') VARCHAR(30)"`
	StorePath       string    `xorm:"not null comment('保存在 S3 上的路径') VARCHAR(200)"`
	PreviewUrl      string    `xorm:"not null comment('预览路径') VARCHAR(200)"`
	PublicAccessUrl string    `xorm:"not null comment('公开访问路径') VARCHAR(200)"`
	EditorId        []byte    `xorm:"not null comment('发布者 ID') BINARY(20)"`
	Title           string    `xorm:"not null comment('标题') VARCHAR(50)"`
	CreatedAt       time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt       time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt       time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type Information struct {
	InformationId []byte `xorm:"not null pk unique BINARY(20)"`
	Title         string `xorm:"comment('资讯文本标题') VARCHAR(200)"`
	Content       string `xorm:"comment('资讯文本简短介绍') VARCHAR(500)"`
	Ui            int    `xorm:"not null default 1 comment('资讯展现类型:
	1(一张小图),
	2(三张小图),
	3(一张大图)') TINYINT(1)"`
	Image_1        []byte    `xorm:"comment('资讯缩略图1') BINARY(20)"`
	Image_2        []byte    `xorm:"comment('资讯缩略图2') BINARY(20)"`
	Image_3        []byte    `xorm:"comment('资讯缩略图3') BINARY(20)"`
	Image_4        []byte    `xorm:"comment('资讯缩略图4') BINARY(20)"`
	Publisher     []byte    `xorm:"not null comment('发布者ID') BINARY(20)"`
	Recommended   int       `xorm:"default 0 comment('是否推荐') TINYINT(1)"`
	Hits          int64     `xorm:"not null default 0 comment('点击量') BIGINT"`
	LikeCount     int64     `xorm:"default 0 comment('点赞量') BIGINT"`
	Collent       int64     `xorm:"default 0 comment('收藏量') BIGINT"`
	ResourcesUrl  string    `xorm:"comment('资讯的图文资源') VARCHAR(100)"`
	ShareUrl      string    `xorm:"comment('分享的url') VARCHAR(100)"`
	PublisherName string    `xorm:"comment('资讯发布者') VARCHAR(50)"`
	IsDeleted     int       `xorm:"not null default 0 comment('已删除') TINYINT(1)"`
	CreatedAt     time.Time `xorm:"not null TIMESTAMP"`
	UpdateAt      time.Time `xorm:"not null TIMESTAMP"`
	DeleteAt      time.Time `xorm:"TIMESTAMP"`
}

type Item struct {
	ItemId    []byte    `xorm:"not null pk BINARY(20)"`
	ItemName  string    `xorm:"not null comment('菜单名称') unique VARCHAR(10)"`
	ItemPath  string    `xorm:"default '' comment('小程序或h5使用') VARCHAR(50)"`
	IsYzPath  int       `xorm:"default 0 comment('是否是有赞地址') TINYINT"`
	ItemIcon  []byte    `xorm:"comment('菜单栏图标id') BINARY(20)"`
	ItemRank  int       `xorm:"not null comment('排序编号') unique INT"`
	CreatedAt time.Time `xorm:"not null TIMESTAMP"`
	UpdateAt  time.Time `xorm:"not null TIMESTAMP"`
	DeleteAt  time.Time `xorm:"TIMESTAMP"`
}

type LikeCollect struct {
	LikeCollectId []byte    `xorm:"comment('资讯和视频ID') BINARY(20)"`
	Type          int       `xorm:"not null comment('类型:视频:2,资讯为:3') INT"`
	UserId        []byte    `xorm:"not null comment('用户id') BINARY(20)"`
	GLike         int       `xorm:"default 0 comment('是否点赞') TINYINT"`
	Collect       int       `xorm:"default 0 comment('是否收藏') TINYINT"`
	CreatedAt     time.Time `xorm:"not null TIMESTAMP"`
	UpdateAt      time.Time `xorm:"not null TIMESTAMP"`
	DeleteAt      time.Time `xorm:"TIMESTAMP"`
}

type MealProduct struct {
	MealProductId     []byte    `xorm:"not null pk comment('xid,膳食建议ID') BINARY(20)"`
	MealSuggestionKey string    `xorm:"not null comment('膳食建议编号') VARCHAR(50)"`
	ImageId           string    `xorm:"not null default '' comment('图片ID') VARCHAR(20)"`
	YzProductAlias    string    `xorm:"not null comment('有赞商品别名，拼接地址') VARCHAR(50)"`
	CreatedAt         time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt         time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt         time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
	ProductType       int       `xorm:"not null default 0 TINYINT"`
	Title             string    `xorm:"not null default '' VARCHAR(100)"`
}

type MealSuggestion struct {
	MealSuggestionId     []byte    `xorm:"not null pk comment('xid,膳食建议ID') BINARY(20)"`
	MealSuggestionKey    string    `xorm:"not null comment('膳食建议编号') VARCHAR(50)"`
	MealSuggestionName   string    `xorm:"not null comment('膳食建议名称') VARCHAR(30)"`
	MealSuggestionDetail string    `xorm:"not null comment('膳食建议详细内容') TEXT"`
	Label                string    `xorm:"not null comment('标签') VARCHAR(20)"`
	LanguageCode         string    `xorm:"not null comment('语言') VARCHAR(20)"`
	CreatedAt            time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt            time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt            time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type OnSiteMessage struct {
	MessageId      []byte    `xorm:"not null pk comment('xid,频道ID') BINARY(20)"`
	SenderId       string    `xorm:"not null comment('发送者ID') VARCHAR(20)"`
	SenderNickname string    `xorm:"not null comment('发送者姓名') VARCHAR(50)"`
	SenderAvatar   int       `xorm:"not null comment('发送者头像，2男性头型，3女性头型') TINYINT"`
	RecipientId    string    `xorm:"not null comment('接受者ID') VARCHAR(20)"`
	MessageContent string    `xorm:"not null comment('消息内容') VARCHAR(256)"`
	MessageTitle   string    `xorm:"not null comment('消息标题') VARCHAR(50)"`
	BusinessName   string    `xorm:"not null comment('业务名称') VARCHAR(50)"`
	CreatedAt      time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt      time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt      time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type Order struct {
	OrderId                 []byte    `xorm:"not null pk comment('订单 ID,xid') BINARY(20)"`
	UserId                  []byte    `xorm:"not null comment('用户 ID,xid') index BINARY(20)"`
	ProductId               []byte    `xorm:"not null comment('商品 ID,xid') BINARY(20)"`
	NeedConfirmConsumption  int       `xorm:"not null comment('是否需要确认消费') TINYINT"`
	HasSubscriptionConsumed int       `xorm:"not null comment('订阅是否被消费,0否，1是') TINYINT"`
	SubscriptionItemId      []byte    `xorm:"not null comment('订阅项 ID,xid') BINARY(20)"`
	TrialApplicationId      []byte    `xorm:"not null comment('试用申请ID,xid') BINARY(20)"`
	YzOrderStatus           string    `xorm:"not null comment('有赞订单状态') VARCHAR(30)"`
	YzOrderId               string    `xorm:"not null comment('有赞返回的订单号') VARCHAR(50)"`
	CreatedAt               time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt               time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt               time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type Page struct {
	PageId          []byte    `xorm:"not null pk comment('xid,页面ID') BINARY(20)"`
	Key             string    `xorm:"not null comment('页面关键词') VARCHAR(50)"`
	Title           string    `xorm:"not null comment('页面标题') VARCHAR(50)"`
	StorePath       string    `xorm:"not null comment('保存在S3的路径') VARCHAR(200)"`
	PreviewUrl      string    `xorm:"not null comment('预览路径') VARCHAR(200)"`
	PublicAccessUrl string    `xorm:"not null comment('公开访问路径') VARCHAR(200)"`
	IsInternalPage  int       `xorm:"not null comment('是否是内部页面') TINYINT"`
	Content         string    `xorm:"not null comment('页面内容') TEXT"`
	ContentType     string    `xorm:"not null comment('页面内容类型') VARCHAR(50)"`
	HasThumbnail    int       `xorm:"not null comment('是否有缩略图') TINYINT"`
	ThumbnailUrl    string    `xorm:"not null comment('缩略图地址') VARCHAR(200)"`
	EditorId        []byte    `xorm:"not null comment('发布者 ID') BINARY(20)"`
	MetaInfo        string    `xorm:"not null comment('元数据信息') VARCHAR(255)"`
	Status          int       `xorm:"not null comment('2是草稿状态，3是已发布状态，4是已下架状态') TINYINT"`
	PublishTime     time.Time `xorm:"comment('发布时间') TIMESTAMP"`
	Tags            string    `xorm:"not null comment('标签') VARCHAR(100)"`
	CreatedAt       time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt       time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt       time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type Permission struct {
	PermissionId string    `xorm:"not null pk comment('权限 ID,xid') VARCHAR(20)"`
	ServiceName  string    `xorm:"not null comment('模块名，API，sample:DeviceAPI') VARCHAR(100)"`
	RpcName      string    `xorm:"not null comment('接口名称, sample:ListTrialDevices') VARCHAR(100)"`
	Version      string    `xorm:"not null default '' comment('指定版本，该权限仅用于哪个版本，SemVer语法') VARCHAR(30)"`
	System       string    `xorm:"not null default '' comment('指定系统，ios，android...') VARCHAR(30)"`
	CreatedAt    time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt    time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt    time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type PersonalSubscriptionTimeline struct {
	PersonalSubscriptionTimelineId []byte    `xorm:"not null pk comment('个人版订阅时间线ID,xid') BINARY(20)"`
	UserId                         []byte    `xorm:"not null comment('用户 ID') unique BINARY(20)"`
	AvailableBeginDate             time.Time `xorm:"not null comment('当前有效订阅的起始日期时间') TIMESTAMP"`
	ExpiredDate                    time.Time `xorm:"not null comment('订阅过期日期时间') TIMESTAMP"`
	CreatedAt                      time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt                      time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt                      time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type Physique struct {
	PhysiqueId       []byte    `xorm:"not null pk comment('xid,体质ID') BINARY(20)"`
	PhysiqueKey      string    `xorm:"not null comment('体质编号') unique VARCHAR(50)"`
	PhysiqueName     string    `xorm:"not null comment('体质名称') VARCHAR(30)"`
	MealSuggestionId []byte    `xorm:"not null comment('膳食建议') BINARY(20)"`
	LanguageCode     string    `xorm:"not null comment('语言') VARCHAR(20)"`
	CreatedAt        time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt        time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt        time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type Product struct {
	ProductId               []byte    `xorm:"not null pk comment('商品 ID,xid') BINARY(20)"`
	ProductName             string    `xorm:"not null comment('商品名称') VARCHAR(50)"`
	Price                   int       `xorm:"not null comment('价格,万分之一元，一元==10000') INT"`
	Brief                   string    `xorm:"not null comment('简介') VARCHAR(100)"`
	YzProductAlias          string    `xorm:"not null comment('有赞商品 别名') VARCHAR(100)"`
	HasTrialSubscription    int       `xorm:"not null comment('是否包含试用版订阅，0否，1是') TINYINT"`
	HasPersonalSubscription int       `xorm:"not null comment('是否包含个人版订阅，0否，1是') TINYINT"`
	HasFamilySubscription   int       `xorm:"not null comment('是否包含家庭版订阅，0否，1是') TINYINT"`
	HasDevice               int       `xorm:"not null comment('是否包含设备，0否，1是') TINYINT"`
	IsTrialProduct          int       `xorm:"not null comment('是否是试用版相关商品，0否，1是') TINYINT"`
	IsSubscriptionRenew     int       `xorm:"not null comment('是否是续订,0否，1是') TINYINT"`
	RenewDuration           string    `xorm:"not null comment('延长时间') VARCHAR(50)"`
	OriginalPrice           int       `xorm:"not null default 0 comment('促销前的价格,原价') INT"`
	IsPromotionProduct      int       `xorm:"not null default 0 TINYINT"`
	FirstDiscountPrice      int       `xorm:"not null INT"`
	IsFirstDiscountProduct  int       `xorm:"not null TINYINT"`
	DiscountBrief           string    `xorm:"not null VARCHAR(50)"`
	ProductTitle            string    `xorm:"not null VARCHAR(50)"`
	CreatedAt               time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt               time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt               time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
	IapPrice                int       `xorm:"not null default 0 INT"`
	IsIapProduct            string    `xorm:"not null default '0' VARCHAR(45)"`
}

type Role struct {
	RoleId    string    `xorm:"not null pk comment('角色 ID,xid') VARCHAR(20)"`
	RoleName  string    `xorm:"not null comment('角色名称') VARCHAR(20)"`
	CreatedAt time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type RolePermission struct {
	RoleId       string    `xorm:"not null pk comment('角色 ID,xid') VARCHAR(20)"`
	PermissionId string    `xorm:"not null pk comment('权限ID') VARCHAR(20)"`
	CreatedAt    time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt    time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt    time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type ServiceGroup struct {
	ServiceGroupId []byte    `xorm:"not null pk unique BINARY(20)"`
	ServiceType    int       `xorm:"not null comment('服务人群类型') unique INT"`
	Title          string    `xorm:"not null comment('服务类型名称') VARCHAR(20)"`
	Icon           string    `xorm:"comment('服务类型的图标') VARCHAR(20)"`
	IsDeleted      int       `xorm:"default 0 comment('是否已删除') INT"`
	Des            string    `xorm:"comment('服务类型描述') VARCHAR(200)"`
	Url            string    `xorm:"comment('小程序或者h5路径') VARCHAR(100)"`
	CreatedAt      time.Time `xorm:"not null TIMESTAMP"`
	UpdateAt       time.Time `xorm:"not null TIMESTAMP"`
	DeletedAt      time.Time `xorm:"TIMESTAMP"`
}

type SharedReport struct {
	Token    string `xorm:"not null pk comment('分享报告token') VARCHAR(50)"`
	ReportId []byte `xorm:"not null comment('报告ID') BINARY(20)"`
}

type Sms struct {
	SmsId          []byte    `xorm:"not null pk comment('验证码ID,xid') BINARY(20)"`
	NationCode     string    `xorm:"not null comment('区号') VARCHAR(20)"`
	Phone          string    `xorm:"not null comment('手机号') index VARCHAR(20)"`
	SmsStatus      int       `xorm:"not null comment('验证码状态，0表示待定，1表示发送中，2表示发送成功，3表示发送失败') TINYINT"`
	TemplateAction string    `xorm:"not null comment('短信用途') VARCHAR(255)"`
	PlatformType   string    `xorm:"not null comment('运营商 Aliyun,Tencent') VARCHAR(20)"`
	TemplateParam  string    `xorm:"not null comment('验证码参数') VARCHAR(20)"`
	Language       string    `xorm:"not null comment('语言') VARCHAR(50)"`
	SerialNumber   string    `xorm:"not null comment('序列号') VARCHAR(20)"`
	SmsErrorLog    string    `xorm:"not null comment('错误信息') VARCHAR(255)"`
	CreatedAt      time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt      time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt      time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type SubscriptionActivationCard struct {
	ActivationCode     string    `xorm:"not null pk comment('验证码卡号') VARCHAR(50)"`
	DeliverTo          string    `xorm:"not null comment('供应对象,S自营，D经销商') VARCHAR(10)"`
	ExpiredTime        time.Time `xorm:"not null comment('有效期') TIMESTAMP"`
	BatchCode          string    `xorm:"not null comment('批次号') VARCHAR(30)"`
	ActivationPassword string    `xorm:"not null comment('激活码密码') unique VARCHAR(20)"`
	Status             int       `xorm:"not null comment('2表示入库，3表示出库，4表示已使用，5表示已失效') TINYINT"`
	SubscriptionType   int       `xorm:"not null comment('2 表示个人版订阅类型，3 表示家庭版订阅类型') TINYINT"`
	ExtendedDuration   string    `xorm:"not null comment('延长时间,1d,1m,1y') VARCHAR(20)"`
	MaxMemberCount     int       `xorm:"not null default 1 comment('如果是家庭版(最大人数),个人版默认为1') TINYINT"`
	OutStockDealer     string    `xorm:"not null comment('经销商编号') VARCHAR(30)"`
	CreatedAt          time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt          time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt          time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type SubscriptionActivationCardUsage struct {
	ActivationCode     string    `xorm:"not null pk comment('验证码卡号') VARCHAR(20)"`
	SubscriptionItemId []byte    `xorm:"not null pk comment('订阅项ID,xid') BINARY(20)"`
	UserId             []byte    `xorm:"not null comment('用户 ID') BINARY(20)"`
	CreatedAt          time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt          time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt          time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type SubscriptionItem struct {
	SubscriptionItemId []byte    `xorm:"not null pk comment('订阅项ID,xid') BINARY(20)"`
	UserId             []byte    `xorm:"not null comment('用户 ID') BINARY(20)"`
	SubscriptionName   string    `xorm:"not null comment('订阅名称') VARCHAR(50)"`
	SubscriptionType   int       `xorm:"not null comment('2 表示试用包类型，3 表示个人版订阅类型，4 表示家庭版订阅类型') TINYINT"`
	ExtendedDuration   string    `xorm:"not null comment('延长时间') VARCHAR(20)"`
	UsageStatus        int       `xorm:"not null comment('2表示未使用状态，3 表示已使用状态，4 表示冻结状态') TINYINT"`
	Remark             string    `xorm:"not null comment('备注') VARCHAR(100)"`
	CreatedAt          time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt          time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt          time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
	OrderId            string    `xorm:"not null VARCHAR(100)"`
}

type SystemUser struct {
	SystemUserId   []byte    `xorm:"not null pk comment('系统用户ID,xid') BINARY(20)"`
	Username       string    `xorm:"not null comment('用户名') unique VARCHAR(20)"`
	HashedPassword string    `xorm:"not null comment('sha-256 密码') VARCHAR(256)"`
	Email          string    `xorm:"not null comment('邮箱') VARCHAR(50)"`
	Name           string    `xorm:"not null comment('用户姓名') VARCHAR(20)"`
	RoleId         []byte    `xorm:"not null comment('角色 ID') BINARY(20)"`
	IsActivated    int       `xorm:"not null default 1 comment('是否处于激活状态,0表示未激活，1表示激活') TINYINT"`
	Otp            string    `xorm:"not null comment('用户 otp 密钥') unique VARCHAR(50)"`
	Remark         string    `xorm:"not null comment('备注') VARCHAR(100)"`
	CreatedAt      time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt      time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt      time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type TrialApplication struct {
	TrialApplicationId    []byte    `xorm:"not null pk comment('试用申请ID,xid') BINARY(20)"`
	UserId                []byte    `xorm:"not null comment('用户 ID') unique BINARY(20)"`
	IsPersonalDevice      int       `xorm:"not null comment('是否是个人版设备，0表示不是，1表示是') TINYINT"`
	IsFamilyDevice        int       `xorm:"not null comment('是否是家庭版设备，0表示不是，1表示是') TINYINT"`
	DeviceId              []byte    `xorm:"not null comment('试用版机器的ID') index BINARY(20)"`
	SubscriptionItemId    []byte    `xorm:"not null comment('试用版的订阅 ID') BINARY(20)"`
	OrderId               []byte    `xorm:"not null comment('订单ID') BINARY(20)"`
	YzOrderId             string    `xorm:"not null comment('有赞订单ID') VARCHAR(50)"`
	PaymentTime           time.Time `xorm:"not null comment('付款时间') TIMESTAMP"`
	Sender                string    `xorm:"not null comment('发货人员姓名') VARCHAR(10)"`
	DeliveringRemark      string    `xorm:"not null comment('发货备注') VARCHAR(50)"`
	SentTime              time.Time `xorm:"not null comment('发货时间') TIMESTAMP"`
	IsDeliveringConfirmed int       `xorm:"not null comment('是否确认收货') TINYINT"`
	DeliveredTime         time.Time `xorm:"not null comment('确认收货时间') TIMESTAMP"`
	DeviceExpiredTime     time.Time `xorm:"not null comment('设备过期时间') TIMESTAMP"`
	IsUpgraded            int       `xorm:"not null comment('是否升级 0表示否，1表示是') TINYINT"`
	UpgradedTime          time.Time `xorm:"not null comment('升级时间') TIMESTAMP"`
	IsRefunded            int       `xorm:"not null comment('是否退货') TINYINT"`
	RefundedTime          time.Time `xorm:"not null comment('退货时间') TIMESTAMP"`
	ApplicationStatus     int       `xorm:"not null comment('2 表示待处理状态，3 表示已发货状态，4 表示已激活状态，5 表示已过期状态，6 表示已升级状态，7 表示已退货状态，8 表示已取消状态 9 表示已回收状态') TINYINT"`
	IsCanceled            int       `xorm:"not null comment('订单是否取消，0表示否，1表示是') TINYINT"`
	CanceledTime          time.Time `xorm:"not null comment('取消时间') TIMESTAMP"`
	CanceledReason        string    `xorm:"not null comment('取消原因，仅用户可见') VARCHAR(50)"`
	CanceledRemark        string    `xorm:"not null comment('取消备注，仅运营可见') VARCHAR(50)"`
	IsDeviceRecycled      int       `xorm:"not null comment('是否回收 0表示否，1表示是') TINYINT"`
	DeviceRecycledTime    time.Time `xorm:"not null comment('回收时间') TIMESTAMP"`
	DeviceRecyclingPerson string    `xorm:"not null comment('操作人姓名') VARCHAR(30)"`
	CreatedAt             time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt             time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt             time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type TrialSubscriptionTimeline struct {
	TrialSubscriptionTimelineId []byte    `xorm:"not null pk comment('试用版订阅时间线ID,xid') BINARY(20)"`
	UserId                      []byte    `xorm:"not null comment('用户 ID') unique BINARY(20)"`
	AvailableBeginDate          time.Time `xorm:"not null comment('当前有效订阅的起始日期时间') TIMESTAMP"`
	HasUpgraded                 int       `xorm:"not null comment('是否升级为正式机') TINYINT"`
	ExpiredDate                 time.Time `xorm:"not null comment('订阅过期日期时间') TIMESTAMP"`
	UpgradedSubscriptionItemId  []byte    `xorm:"comment('升级之后对应的订阅ID') BINARY(20)"`
	CreatedAt                   time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt                   time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt                   time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type User struct {
	UserId                        []byte    `xorm:"not null pk comment('用户ID,xid') BINARY(20)"`
	NationCode                    string    `xorm:"not null comment('国家区号') unique(idx_phone) VARCHAR(20)"`
	Phone                         string    `xorm:"not null comment('手机号码') unique(idx_phone) VARCHAR(20)"`
	LanguageCode                  string    `xorm:"not null comment('语言') VARCHAR(20)"`
	HashedPassword                string    `xorm:"not null comment('sha-256密码') VARCHAR(256)"`
	IsActivated                   int       `xorm:"not null default 1 comment('是否被激活') TINYINT"`
	HasBoundWx                    int       `xorm:"not null comment('是否绑定微信') TINYINT"`
	HasBoundQq                    int       `xorm:"not null comment('是否绑定qq账号') TINYINT"`
	HasBoundWeibo                 int       `xorm:"not null comment('是否绑定微信账号') TINYINT"`
	YzOpenId                      string    `xorm:"not null default '' comment('有赞用户ID') VARCHAR(50)"`
	Remark                        string    `xorm:"not null comment('备注') VARCHAR(255)"`
	HasPurchasedYearlyFamily      int       `xorm:"not null default 0 TINYINT"`
	HasPurchasedQuarterlyFamily   int       `xorm:"not null default 0 TINYINT"`
	HasPurchasedMonthlyFamily     int       `xorm:"not null default 0 TINYINT"`
	HasPurchasedYearlyPersonal    int       `xorm:"not null default 0 TINYINT"`
	HasPurchasedQuarterlyPersonal int       `xorm:"not null default 0 TINYINT"`
	HasPurchasedMonthlyPersonal   int       `xorm:"not null default 0 TINYINT"`
	CreatedAt                     time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt                     time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt                     time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
	WxUnionId                     string    `xorm:"not null default '' VARCHAR(100)"`
	AppleUniqueId                 string    `xorm:"not null default '' VARCHAR(200)"`
}

type UserProfile struct {
	UserProfileId      []byte    `xorm:"not null pk comment('用户档案ID,xid') BINARY(20)"`
	JmUserId           string    `xorm:"not null comment('金姆平台用户ID') VARCHAR(10)"`
	Nickname           string    `xorm:"not null comment('昵称') VARCHAR(20)"`
	NicknameInitial    string    `xorm:"not null comment('昵称首字母，大写，如果不是字符则为#') VARCHAR(1)"`
	Birthday           time.Time `xorm:"not null default '1000-01-01' comment('生日') DATE"`
	Hand               int       `xorm:"not null comment('0是无效的手,1是未设置手，2是左手，3是右手') TINYINT"`
	Gender             int       `xorm:"not null comment('0是无效的性别，1是未设置性别，2是男，3是女') TINYINT"`
	Height             int       `xorm:"not null comment('身高[50,250]') INT"`
	Weight             int       `xorm:"not null comment('体重[30,250]') INT"`
	IsProfileCompleted int       `xorm:"not null comment('档案是否完善，0表示否，1表示是') TINYINT"`
	UserId             []byte    `xorm:"comment('用户ID,xid') index BINARY(20)"`
	CreatedAt          time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt          time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt          time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
	AvatarUrl          string    `xorm:"not null default '' VARCHAR(500)"`
}

type UserProfileV1 struct {
	UserProfileId      []byte    `xorm:"not null pk comment('用户档案ID,xid') BINARY(20)"`
	JmUserId           string    `xorm:"not null comment('金姆平台用户ID') VARCHAR(10)"`
	Nickname           string    `xorm:"not null comment('昵称') VARCHAR(20)"`
	NicknameInitial    string    `xorm:"not null comment('昵称首字母，大写，如果不是字符则为#') VARCHAR(1)"`
	Birthday           time.Time `xorm:"not null default '1000-01-01' comment('生日') DATE"`
	Hand               int       `xorm:"not null comment('0是无效的手,1是未设置手，2是左手，3是右手') TINYINT"`
	Gender             int       `xorm:"not null comment('0是无效的性别，1是未设置性别，2是男，3是女') TINYINT"`
	Height             int       `xorm:"not null comment('身高[50,250]') INT"`
	Weight             int       `xorm:"not null comment('体重[30,250]') INT"`
	IsProfileCompleted int       `xorm:"not null comment('档案是否完善，0表示否，1表示是') TINYINT"`
	UserId             []byte    `xorm:"comment('用户ID,xid') index BINARY(20)"`
	CreatedAt          time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt          time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt          time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type Video struct {
	VideoId       []byte    `xorm:"not null pk unique BINARY(20)"`
	Title         string    `xorm:"comment('文本标题') VARCHAR(200)"`
	Content       string    `xorm:"comment('文本内容') VARCHAR(500)"`
	Ui            int       `xorm:"not null default 4 comment('视频排列类型:4(大图)，5（小图）') TINYINT(1)"`
	ImageId       []byte    `xorm:"comment('视频内容的首帧图片id') BINARY(20)"`
	VedioUrlId    []byte    `xorm:"comment('视频资源的id') BINARY(20)"`
	Publisher     []byte    `xorm:"not null comment('发布者id') BINARY(20)"`
	Recommended   int       `xorm:"default 0 comment('推荐为热门') TINYINT(1)"`
	Hits          int64     `xorm:"default 0 comment('点击量') BIGINT"`
	LikeCount     int64     `xorm:"default 0 comment('点赞量') BIGINT"`
	Collect       int64     `xorm:"default 0 comment('收藏量') BIGINT"`
	ShareUrl      string    `xorm:"comment('分享链接') VARCHAR(100)"`
	IsDeleted     int       `xorm:"not null default 0 comment('已删除') TINYINT(1)"`
	PublisherName string    `xorm:"comment('发布者昵称') VARCHAR(50)"`
	Duration      string    `xorm:"comment('视频时长') VARCHAR(20)"`
	CreatedAt     time.Time `xorm:"not null TIMESTAMP"`
	UpdateAt      time.Time `xorm:"not null TIMESTAMP"`
	DeleteAt      time.Time `xorm:"TIMESTAMP"`
}

type YzCallbackEvent struct {
	YzCallbackEventId string    `xorm:"not null pk comment('有赞消息推送 ID,直接记录有赞返回的消息ID') VARCHAR(100)"`
	EventType         string    `xorm:"not null comment('消息的业务标识，用于区分消息事件类型') VARCHAR(100)"`
	EventBody         string    `xorm:"not null comment('原始消息内容') TEXT"`
	Status            string    `xorm:"not null comment('消息状态') VARCHAR(50)"`
	CreatedAt         time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt         time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt         time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}

type YzOrder struct {
	YzOrderId     string    `xorm:"not null pk comment('有赞订单 ID') VARCHAR(100)"`
	YzOrderStatus int       `xorm:"not null comment('有赞订单状态 订单创建 = 1 订单支付 = 2 订单发货 = 3 订单成功 = 4 订单关闭 = 5') TINYINT"`
	YzOrderStep   int       `xorm:"not null comment('有赞订单执行状态 0表示休眠中 1表示执行中') TINYINT"`
	CreatedAt     time.Time `xorm:"not null comment('数据记录创建时间') TIMESTAMP"`
	UpdatedAt     time.Time `xorm:"not null comment('数据记录更新时间') TIMESTAMP"`
	DeletedAt     time.Time `xorm:"comment('数据记录伪删除时间') TIMESTAMP"`
}
